import type { IRawContact } from "@/chatlog_types/IRawContact";
import type { IRawMsg } from "@/chatlog_types/IRawMsg";
import type { IRawSession } from "@/chatlog_types/IRawSession";
import type { ITask } from "./TasksKeeper";
export const enum TaskType {
  Message = "Message",
  Contact = "Contact",
  Session = "Session"
}
export interface ITaskTypeDataMap {
  [TaskType.Message]: IRawMsg,
  [TaskType.Contact]: IRawContact,
  [TaskType.Session]: IRawSession
}
export interface ITaskTypeCreatorMap {
  [TaskType.Message]: (data: IRawMsg) => ITask<TaskType.Message, IRawMsg>,
  [TaskType.Contact]: (data: IRawContact) => ITask<TaskType.Contact, IRawContact>,
  [TaskType.Session]: (data: IRawSession) => ITask<TaskType.Session, IRawSession>
}
